capture log close
log using suic-econ-a1-femodels.txt, replace text

//  program:    suic-econ-a1-femodels.do
//  task:		estimate impact of recessions on suicide: poisson models
// 	input:		suic-econ-data1-census.dta
//	output:		none
//  project:    economic conditions and suicide
//  author:     sam harper \ 17dec2014

//  #0
//  program setup

version 12
set linesize 80
clear all
macro drop _all
set matsize 11000


// #1
// data and descriptive table

use suic-econ-data1-census, clear
foreach var of varlist sex race2 season div {
	preserve
	collapse (sum) suic pop1, by(`var' stabb year)
	gen rate = suic / (pop1/12) * 100000
	tabstat rate, by(`var') stats(mean sd min max)
	restore
	}
	

* re-scale icei for a 10-unit change, change sign to estimate decrease
replace icei= -1*icei/10



// #2
// crude poisson model without adjustments: Model 0

poisson suic icei, offset(logpop100y) vce(cluster state) nolog ///
	irr cformat(%4.3f)

* predicted marginal effects
eststo m_0: estpost margins, dydx(icei) predict(ir) ///
	vce(unconditional) cformat(%4.2f)

* save estimates for plot
qui parmest, saving(te_m_0, replace) 
	
	
// #3
// now add individual covariates: Model 1

poisson suic icei i.sex i.race2 i.agecat, offset(logpop100y) ///
	vce(cluster state) nolog irr cformat(%4.3f)

* predicted margins
eststo m_1: estpost margins, dydx(icei sex race2 agecat) predict(ir) ///
	vce(unconditional) cformat(%4.2f)

* save estimates for plot
qui parmest, saving(te_m_1, replace) 
	

	
// #4
// now add state and season/year fixed effects: Model 2

poisson suic icei i.sex i.race2 i.agecat i.stabb i.season##i.year, ///
	offset(logpop100y) vce(cluster state) nolog irr cformat(%4.3f)

* predicted marginal effects
eststo m_2: estpost margins, dydx(icei sex race2 agecat season) predict(ir) ///
	vce(unconditional) cformat(%4.2f) 
	
* save estimates for plot
qui parmest, saving(te_m_2, replace) 



// #5
// now add state-specific trends to FE model: Model 3

poisson suic icei i.sex i.race2 i.agecat i.stabb##c.quarter ///
	i.season##i.year, offset(logpop100y) vce(cluster state) ///
	nolog irr cformat(%4.3f)

* predicted marginal effects
eststo m_3: estpost margins, dydx(icei sex race2 agecat season) predict(ir) ///
	vce(unconditional) cformat(%4.2f) 

* save estimates for plot
qui parmest, saving(te_m_3, replace) 	
	

	
// #6
// now add state-specific quadratic time trends to basic FE model: Model 4

poisson suic icei i.sex i.race2 i.agecat i.stabb##(c.quarter##c.quarter) ///
	i.season##i.year, offset(logpop100y) vce(cluster state) nolog ///
	irr cformat(%4.3f)

* predicted margins
eststo m_4: estpost margins, dydx(icei sex race2 agecat season) predict(ir) ///
	vce(unconditional) cformat(%4.2f) 

* save estimates for plot
qui parmest, saving(te_m_4, replace) 
	

	
// #7 	
// include state-specific cubic trends: Model 5

poisson suic icei i.sex i.race2 i.agecat i.stabb##(c.quarter##c.quarter##c.quarter) ///
	i.season##i.year, offset(logpop100y) vce(cluster state) nolog ///
	irr cformat(%4.3f)

* predicted margins
eststo m_5: estpost margins, dydx(icei sex race2 agecat season) predict(ir) ///
	vce(unconditional) cformat(%4.2f) 

* save estimates for plot
qui parmest, saving(te_m_5, replace) 
	

	
// #8
// write results to file for Table 1

esttab m_* using suic-econ-table1.txt,  ///
	cells("b(fmt(%4.2f)) ci(par( ( , ) ))") collabels(Est. 95%CI) nostar not ///
	nolines nonum mtitle((0) (1) (2) (3) (4) (5)) delimiter(";") replace
	
log close
exit	
